Computers are now utilized to perform functions and maintain data critical to many organizations. Businesses use computers to maintain and transfer essential financial and other business data. Computers are also utilized by government agencies and organizations to monitor, regulate, and even activate, national defense systems. Maintaining the integrity of transferred data, in particular, is essential to the proper functioning of such computer systems, and data corruption can have serious (even life threatening) consequences.
A number of factors can contribute to data corruption during the storage and transfer of data in computers and/or computers systems, including components thereof, such as memory controller devices. Conditions under which data corruption may occur can be a result of situations, such as, for example, data transfer delays or the transfer of data between components of a computer system. For example, if a computer or data-processing system is engaged in a “multi-tasking” operation or in overlapped input/output (“I/O”) operations, data can become corrupted. Multi-tasking is the ability of a computer operating system to simulate the concurrent execution of multiple tasks. Importantly, concurrent execution is only “simulated” because there is usually only one CPU in today's personal computers, and it can only process one task at a time. Often, a system interrupt is used to rapidly switch between the multiple tasks, giving the overall appearance of concurrent execution. Despite such features, data corruption remains an inherent problem.
End-to-end data protection provides protection from data corruption in the I/O path from components such as a host bus adapter to the physical drive associated with the computer or computer system. It is essential that during the transfer of data to and from such components, faults be identified in the data path in order to repair and prevent damage to the computer in question. To this end, methods and systems are disclosed herein for improving end-to-end data protection in computers.